﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;

namespace CharacterCreation.Data.Models {
    [Serializable]
    public class Special : BasePersistanceClass {

        /// <summary>
        /// Gets or sets the Description
        /// </summary>
        public string Description {
            get { return _Description; }
            set {
                _Description = value;
                RaisePropertyChanged("Description");
            }
        }
        private string _Description;


        /// <summary>
        /// Gets or sets the XPCost
        /// </summary>
        public int XPCost {
            get { return _XPCost; }
            set {
                _XPCost = value;
                RaisePropertyChanged("XPCost");
            }
        }
        private int _XPCost;


        /// <summary>
        /// Gets or sets the PriorityPointCose
        /// </summary>
        public int PriorityPointCost {
            get { return _PriorityPointCost; }
            set {
                _PriorityPointCost = value;
                RaisePropertyChanged("PriorityPointCost");
            }
        }
        private int _PriorityPointCost;

        
        /// <summary>
        /// Gets or sets the HasLevel
        /// </summary>
        public bool HasLevel {
            get { 
                return _HasLevel; 
            }
            set {
                _HasLevel = value;
                RaisePropertyChanged("HasLevel");
            }
        }
        private bool _HasLevel;


        /// <summary>
        /// Gets or sets the Statistics. These statistics supply the base skill level of 
        /// the skill.
        /// </summary>
        public ObservableCollection<string> Statistics {
            get {
                if (_Statistics == null)
                    _Statistics = new ObservableCollection<string>();
                return _Statistics;
            }
            set {
                _Statistics = value;
                RaisePropertyChanged("Statistics");
            }
        }
        private ObservableCollection<string> _Statistics;

    }
}
